/*
指针的运算：
整型数a:10
p:0x7ffcdc0f081c
p+1:0x7ffcdc0f0820
字符型a1:a
p1:0x7ffcdc0f081b -602994661
p1+1:0x7ffcdc0f081c
指针间相减:
q1-p1:1 0x1

指针运算是以地址所存放的地址作为运算量而进行的。
1. 指针加上整数，px+n 指针向地址大的方向移动n个数据
2. 指针减去整数，px-n  指针向地址小的方向移动n个数据
3. 指针递增，px++ 指针向地址大的方向移动1个数据
4. 指针递减，px-- 指针向地址小的方向移动1个数据
5. 指针相减，px-py  两个指针之间间隔数据元素的个数（整型数）
注意：
1. 不同数据类型的两个指针实行加减整数运算时无意义的
2. px+n表示的实际位置的地址量是 px + sizeof(指针指向的类型) *n
3. px-n表示的实际位置的地址量是  px -sizeof(指针指向的类型) * n
4. px-py 运算的结果是两指针指向的地址位置之间相隔数据的个数
5. 两指针相减的结果值不是地址量，而是一个整数值，表示两指针之间相隔数据的个数。
 */
#include<stdio.h>
int main(){
	printf("指针的运算：\n");
	int a = 10 ;
	int *p = &a;

	printf("整型数a:%d\n",a);
	printf("p:%p\n",p);
	printf("p+1:%p\n",p+1);

	char a1 = 'a' ;
	char *p1 = &a1;

	printf("字符型a1:%c\n",a1);
	printf("p1:%p %d\n",p1,p1);
	printf("p1+1:%p\n",p1+1);

	char *q1 = p1+1;
	printf("指针间相减:\n");
	printf("q1-p1:%ld %p\n",q1-p1,q1-p1);
}
